// import axios from "axios";
// import type { AxiosRequestConfig, AxiosResponse } from "axios";


// // 定义一个用于导航的工具函数
// const navigateToLogin = (redirectUrl: string) => {
//   uni.navigateTo({
//     url: `/pages/user/login?redirect=${encodeURIComponent(redirectUrl)}`,
//   });
// };

// const isDev: boolean = process.env.NODE_ENV === 'development';
// const myAxios = axios.create({
//   baseURL: isDev ? 'http://127.0.0.1:9090/api' : 'http://8.130.16.185:9090/api',
// });

// // 请求头携带cookie
// myAxios.defaults.timeout = 25000;
// myAxios.defaults.withCredentials = true;

// // 添加请求拦截器
// myAxios.interceptors.request.use(
//   function (config: AxiosRequestConfig) {
//     // 在发送请求之前做些什么
//     return config;
//   },
//   function (error) {
//     // 对请求错误做些什么
//     return Promise.reject(error);
//   }
// );

// // 添加响应拦截器
// myAxios.interceptors.response.use(
//   function (response: AxiosResponse) {
//     console.log(response);
//     if (response.data.code === 40100) {
//       const redirectUrl = encodeURIComponent(uni.getLaunchOptionsSync().path || '/');
//       navigateToLogin(redirectUrl);
//       return Promise.reject(new Error('未授权，请登录'));
//     }
//     return response.data;
//   },
//   function (error) {
//     return Promise.reject(error);
//   }
// );

// export default myAxios;
// 定义一个用于导航的工具函数
const navigateToLogin = (redirectUrl) => {
  uni.navigateTo({
    url: `/pages/user/login?redirect=${encodeURIComponent(redirectUrl)}`,
  });
};

const isDev = process.env.NODE_ENV === 'development';
const BASE_URL = isDev ? 'http://127.0.0.1:9090/api' : 'http://8.130.16.185:9090/api';

const request = (config) => {
  return new Promise((resolve, reject) => {
    wx.request({
      ...config,
      url: `${BASE_URL}${config.url}`,
      success: (res) => {
        if (res.data.code === 40100) {
          const redirectUrl = encodeURIComponent(uni.getLaunchOptionsSync().path || '/');
          navigateToLogin(redirectUrl);
          reject(new Error('未授权，请登录'));
        } else {
          resolve(res.data);
        }
      },
      fail: (err) => {
        reject(err);
      },
    });
  });
};

export default {
  get: (url, data, config = {}) => {
    return request({
      ...config,
      url,
      method: 'GET',
      data,
    });
  },
  post: (url, data, config = {}) => {
    return request({
      ...config,
      url,
      method: 'POST',
      data,
    });
  },
  // 可以根据需要添加其他请求方法，如 put、delete 等
};